<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组</title>
</head>
<body>
<p>数组的一些核心方法：</p>
<p>concat 连接2个或更多数组，并返回结果</p>
<p>every 对数组中的每一项运行给定函数，如果该函数对每一项都返回true，则返回true</p>
<p>filter 对数组中的每一项运行给定函数，返回该函数会返回true的项组成的数组</p>
<p>forEach 对数组中的每一项运行给定函数。这个方法没有返回值</p>
<p>join 将所有的数组元素连接成一个字符串</p>
<p>indexOf 返回第一个与给定参数相等的数组元素的索引，没有找到则返回-1</p>
<p>lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值</p>
<p>map 对数组中的每一项运行给定函数，返回每次函数调用的结果组成的数组</p>
<p>reverse 颠倒数组中元素的顺序，原先第一个元素现在变成最后一个，同样原先的最后一个元素变成了现在的第一个</p>
<p>slice 传入索引值，将数组里对应索引范围内的元素作为新数组返回</p>
<p>some 对数组中的每一项运行给定函数，如果任一项返回true，则返回true</p>
<p>sort 按照字母顺序对数组排序，支持传入指定排序方法的函数作为参数</p>
<p>toString 将数组作为字符串返回</p>
<p>valueOf 和toString类似，将数组作为字符串返回</p>
<script type="text/javascript">
    /***********************************************************************************************************/
    var arr1 = ['a', 'b', 'c', 'd'];
    // 数组末位添加元素
    // push方法向数组的末尾添加一个或更多元素，并返回新的长度。
    // arrayObject.push(newelement1,newelement2,....,newelementX)
    // newelement1 必需。要添加到数组的第一个元素。
    // newelement2，newelementX 可选。可添加多个元素。
    arr1.push('e', 'f');
    console.log("push：" + arr1);//输出：["a", "b", "c", "d", "e", "f"]
    /***********************************************************************************************************/
    // 数组开头添加元素
    // unshift方法向数组的开头添加一个或更多元素，并返回新的长度。
    // arrayObject.unshift(newelement1,newelement2,....,newelementX)
    // newelement1 必需。要添加到数组的第一个元素。
    // newelement2，newelementX 可选。可添加多个元素。
    arr1.unshift('1', '2');
    console.log("unshift：" + arr1);//输出：["1", "2", "a", "b", "c", "d", "e", "f"]
    /***********************************************************************************************************/
    // 删除数组最后一位元素
    // pop() 方法用于删除并返回数组的最后一个元素。
    // arrayObject.pop()
    arr1.pop();
    console.log("pop：" + arr1);//输出：["1", "2", "a", "b", "c", "d", "e"]
    /***********************************************************************************************************/
    // 删除数组首位一位元素
    // shift() 方法用于把数组的第一个元素从其中删除，并返回第一个元素的值。
    // arrayObject.shift()
    arr1.shift();
    console.log("shift：" + arr1);//输出：["2", "a", "b", "c", "d", "e"]
    /***********************************************************************************************************/
    // 在任意位置添加或删除元素
    // splice() 方法向/从数组中添加/删除项目，然后返回被删除的项目。
    // arrayObject.splice(index,howmany,item1,.....,itemX)
    // index 必需。整数，规定添加/删除项目的位置，使用负数可从数组结尾处规定位置。
    // howmany 必需。要删除的项目数量。如果设置为 0，则不会删除项目。
    // item1, ..., itemX 可选。向数组添加的新项目。
    arr1.splice(0, 1);
    console.log("splice：" + arr1);//输出：["a", "b", "c", "d", "e"]
    arr1.splice(1, 0, "q", "w", "e");
    console.log("splice：" + arr1);//输出：["a", "q", "w", "e", "b", "c", "d", "e"]
    /***********************************************************************************************************/
    // 数组合并
    // concat() 方法用于连接两个或多个数组。
    // 该方法不会改变现有的数组，而仅仅会返回被连接数组的一个副本。
    // arrayObject.concat(arrayX,arrayX,......,arrayX)
    // arrayX	必需。该参数可以是具体的值，也可以是数组对象。可以是任意多个。
    var zero = 0;
    var positiveNumbers = [1, 2, 3];
    var negativeNumbers = [-3, -2, -1];
    var numbers = negativeNumbers.concat(zero, positiveNumbers);
    console.log("concat：" + numbers);//输出：[-3, -2, -1, 0, 1, 2, 3]
    /***********************************************************************************************************/
    // 输出数组为字符串
    // toString和join方法
    var strNum=[1,2,3,4,5,6,7]
    // toString中间会以','分隔
    console.log(strNum.toString());
    // 如果想用一个不同的分隔符（比如-）把元素隔开，可以用join方法
    var numbersString = strNum.join('-');
    console.log(numbersString);
    /***********************************************************************************************************/
</script>
</body>
</html>
